package cn.e3.content.service.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.e3.content.service.ContentCategoryService;
import cn.e3.easyuitreenode.EasyuiTreeNode;
import cn.e3.mapper.TbContentCategoryMapper;
import cn.e3.pojo.TbContentCategory;
import cn.e3.pojo.TbContentCategoryExample;
import cn.e3.pojo.TbContentCategoryExample.Criteria;
import cn.e3.utils.E3Result;
/*
 * 后台分类列表的服务
 */
@Service
public class ContentCategoryServiceImpl implements ContentCategoryService{
	@Autowired
	private TbContentCategoryMapper tbContentCategoryMapper;
	@Override
	public List<EasyuiTreeNode> getContentCat(Long parentId) {
		//创建example查询条件
		TbContentCategoryExample example=new TbContentCategoryExample();
		Criteria criteria = example.createCriteria();
		criteria.andParentIdEqualTo(parentId);
		//利用mapper查询
		List<TbContentCategory> list = tbContentCategoryMapper.selectByExample(example);
		List<EasyuiTreeNode> list1=new ArrayList<EasyuiTreeNode>();
		for (TbContentCategory tbContentCategory : list) {
			EasyuiTreeNode easyuiTreeNode=new EasyuiTreeNode();
			easyuiTreeNode.setId(tbContentCategory.getId());
			easyuiTreeNode.setText(tbContentCategory.getName());
			easyuiTreeNode.setState(tbContentCategory.getIsParent()?"closed":"open");
			list1.add(easyuiTreeNode);
		}
	
		return list1;
	}
	/*
	 * 添加子节点
	 */
	@Override
	public E3Result createContentCategory(Long parentId, String name) {
		//创建节点pojo
		TbContentCategory tbContentCategory=new TbContentCategory();
		//设置pojo属性
		tbContentCategory.setParentId(parentId);
		//设置名字
		tbContentCategory.setName(name);
		//设置创建时间
		tbContentCategory.setCreated(new Date());
		//是指修改时间
		tbContentCategory.setUpdated(new Date());
		//设置是否为父节点
		tbContentCategory.setIsParent(false);
		tbContentCategory.setSortOrder(1);
		//status 1正常，0下架，刚创建即为正常
		tbContentCategory.setStatus(1);
		//查如数据库
		tbContentCategoryMapper.insert(tbContentCategory);
		E3Result e3Result=new E3Result();
		
		//设置父节点
		TbContentCategory category = tbContentCategoryMapper.selectByPrimaryKey(parentId);
		//判断是否为父节点
		if(!category.getIsParent()){
			//设置为父节点
			category.setIsParent(true);
			//更新到数据库
			tbContentCategoryMapper.updateByPrimaryKey(category);
		}
		return e3Result.ok(tbContentCategory);
	}

}
